﻿Public Class cCompra
    Dim dsmovi As lbGlobalcom.dsMovimiento
    Dim daOrdCom As dsComprasTableAdapters.COM_ENCABEZADOORDENCOMPRATableAdapter
    Dim drOrdCom As dsCompras.COM_ENCABEZADOORDENCOMPRARow
    Dim daOrdComDetalle As dsComprasTableAdapters.COM_DETALLEORDENCOMPRATableAdapter
    Dim dtOrdCom As dsCompras.COM_ENCABEZADOORDENCOMPRADataTable
    Dim dtOrdComDet As dsCompras.COM_DETALLEORDENCOMPRADataTable
    Dim datipodoc As dsGlobalTableAdapters.GLO_TIPODOCUMENTOTableAdapter
    Dim drTipodocCom As dsGlobal.GLO_TIPODOCUMENTORow
    Dim dtTipodoc As dsGlobal.GLO_TIPODOCUMENTODataTable
    Dim drTipodoc As dsGlobal.GLO_TIPODOCUMENTORow
    Dim cgeneral As cGeneral
    Sub New(ByVal dsMovimi As lbGlobalcom.dsMovimiento)
        Try
            dsmovi = dsMovimi
            datipodoc = New lbGlobalcom.dsGlobalTableAdapters.GLO_TIPODOCUMENTOTableAdapter
            daOrdCom = New lbGlobalcom.dsComprasTableAdapters.COM_ENCABEZADOORDENCOMPRATableAdapter
            daOrdComDetalle = New lbGlobalcom.dsComprasTableAdapters.COM_DETALLEORDENCOMPRATableAdapter
        Catch ex As Exception
            Throw ex
            cError.SalvaError(ex, "Samuel")
        End Try
        
    End Sub

    Public Sub cargarCompra(ByVal tipodoc As String, ByVal numero As Integer)
        Try
            dtOrdCom = daOrdCom.GetDataByTipoDocnumero(tipodoc, numero)
            If dtOrdCom IsNot Nothing Then
                drOrdCom = dtOrdCom.Rows(0)
                If drOrdCom.ESTADOORDEN = 1 Then
                    drTipodoc = datipodoc.GetDataByTipoDoc(tipodoc).Rows(0)
                    If drTipodoc IsNot Nothing Then
                        drTipodocCom = datipodoc.GetDataByTipoDoc(drTipodoc.TIPODOCCONVIERTE).Rows(0)
                        Dim pnumero As Integer = lbGlobalcom.Consec.GetNumeroActual(drTipodocCom.TIPODOC, drTipodocCom.DOCES)
                        Dim drMov As dsMovimiento.MOV_MOVIMIENTORow
                        drMov = dsmovi.MOV_MOVIMIENTO.NewRow
                        drMov.IDDOCUMENTO = drTipodocCom.TIPODOC
                        drMov.NUMERO = pnumero
                        drMov.IDSEDE = drOrdCom.SUCURSALGLOBALCOM
                        drMov.IDCCOSTO = drOrdCom.IDCCOSTO
                        drMov.IDLISTA = drTipodoc.IDLISTA
                        drMov.IDTERCERO = drOrdCom.IDPROVEEDOR
                        drMov.IDFORMAPAGO = drOrdCom.IDFORMAPAGO
                        drMov.IDBODEGADESTINO = drOrdCom.BODEGAPARA
                        drMov.IDCENTROSUMI = drOrdCom.IDCENTROSUMI
                        drMov.IDDOCREFERENCIA = drOrdCom.TIPODOC
                        drMov.NUMEROREFERENCIA = drOrdCom.NUMERO
                        drMov.NOREMCOMCEL = cgeneral.NToCad(drOrdCom("NUMEROPEDIDO"))
                        dsmovi.MOV_MOVIMIENTO.AddMOV_MOVIMIENTORow(drMov)
                        dtOrdComDet = daOrdComDetalle.GetDataByTipoDocNumero(tipodoc, numero)
                        For Each dr In dtOrdComDet.Rows
                            Dim drMovDetalle As dsMovimiento.MOV_MOVIMIENTODETALLERow
                            drMovDetalle = dsmovi.MOV_MOVIMIENTODETALLE.NewRow
                            drMovDetalle("IDDOCUMENTO") = drTipodocCom("TIPODOC")
                            drMovDetalle("NUMERO") = pnumero
                            drMovDetalle("IDPRODUCTO") = dr("IDPRODUCTO")
                            drMovDetalle("CANTIDAD") = dr("CANTIDAD")
                            drMovDetalle("VALORBASE") = dr("PRECIOBASE")
                            drMovDetalle("VALORIVA") = dr("PRECIOIVA")
                            drMovDetalle("NUMEROLINEA") = dr("LINEA")
                            drMovDetalle("VALORLINEA") = dr("CANTIDAD") * dr("PRECIOBASE")
                            dsmovi.MOV_MOVIMIENTODETALLE.Rows.Add(drMovDetalle)
                        Next
                        drOrdCom.ESTADOORDEN = 3
                        daOrdCom.Update(dtOrdCom)
                    End If
                Else
                    Throw New Exception("Esta orden de compra ya fue generada, favor verificar en compras ")
                End If
            End If
            ' ActualizaEstadoOrdenCompra()
        Catch ex As Exception
            Throw ex
            cError.SalvaError(ex, "Samuel")
        End Try
    End Sub

End Class
